package ar.com.cubika.trainees.bean.transportes.actividades;

import java.util.Collection;
import java.util.Date;
import java.util.HashSet;

import ar.com.cubika.trainees.bean.transportes.vehiculos.Vehiculo;
import ar.com.cubika.trainees.exceptions.BusinessException;

public class PlanEnMantenimiento extends PlanDiario {
	private Mantenimiento mantenimiento;
	
	/* (non-Javadoc)
	 * @see PlanDiario#PlanDiario(Vehiculo, Date)
	 */
	public PlanEnMantenimiento(Vehiculo vehiculo, Date fecha) {
		super(vehiculo, fecha);
	}
	
	public Mantenimiento getMantenimiento() {
		return this.mantenimiento;
	}
	
	public void setMantenimiento(Mantenimiento mant) {
		this.mantenimiento = mant;
	}

	/* (non-Javadoc)
	 * @see ar.com.cubika.trainees.bean.transportes.actividades.PlanDiario#getActividades()
	 */
	public Collection<Actividad> getActividades() {
		if (this.getMantenimiento() == null) {
			throw new BusinessException(
					"Debe ingresarse un mantenimiento en el plan " + 
					this.getDescripcionBase());
		}
		Collection<Actividad> result = new HashSet<Actividad>();
		result.add(this.getMantenimiento());
		return result;
	}

	/* (non-Javadoc)
	 * @see ar.com.cubika.trainees.bean.transportes.actividades.PlanDiario#getDescripcionEstricta()
	 */
	public String getDescripcionEstricta() {
		return this.getMantenimiento().getDescripcion();
	}

	/* (non-Javadoc)
	 * @see ar.com.cubika.trainees.bean.transportes.actividades.PlanDiario#getTiempoLibre()
	 */
	public double getTiempoOcupado() {
		return 24.0;
	}

	/* (non-Javadoc)
	 * @see ar.com.cubika.trainees.bean.transportes.actividades.PlanDiario#isLibre()
	 */
	public boolean isLibre() {
		return false;
	}
	
	

}
